Strings zijn onveranderlijk
Home

Strings zijn onveranderlijk

Strings zijn onveranderlijk

Een keer een string gemaakt is kan je die niet meer veranderen. Je kan ze niet langer of korter maken en je kan geen enkele van de karakters ervan wijzigen.

Behoudsgezinde strings

Dat biedt enkele voordelen. Je kan de string manipuleren zonder dat de inhoud ervan verandert.

String file = "F:/Cursussen/ASP.NET/Ajax/MAFc/Ajax.js";
if (file.ToUpperInvariant().Substring(10, 12).EndsWith("EXE")
{
    Console.WriteLine("Het bestand met de naam {0} is een uitvoerbaar bestand, file);
}
else
{
     Console.WriteLine("Het bestand met de naam {0} is geen uitvoerbaar bestand, file);
}

De ToUpperVariant methode retourneert een nieuwe string en wijzigt de karakters in file string niet. De nieuwe string wordt dan geïnspecteerd door EndsWidth. De twee tijdelijke strings die door ToUpperVariant en EndsWidth worden gecreëerd zijn geen lang leven beschoren en de 'garbage collector' zal het geheugen bij de eerst volgende ophaalronde weer vrij maken.

Maar elk voordeel heeft ook zijn nadeel. Als je een hele reeks stringbewerkingen moet uitvoeren worden een hele hoop string objecten op de heap gecreëerd waardoor de 'garbage collector' meerdere keren zal moeten uitrijden. In dat geval kan je dan beter de StringBuilder klasse of interpolatie gebruiken.

Oefening

  1. Plaats de code hierboven in een static methode met de naam StringsZijnOnveranderlijk in de klasse met de naam WerkenMetGegevens in de namespace met de naam LerenWerkenMetCSharp.
  2. Test deze methode in de Main methode in Program.cs.

JI
2018-09-26 11:45:59